Interaction with multimedia streams such as during music downloading, video recording, and phone conversations is pervasive in society. The types of electronic devices designed to transmit and receive these streams are as varied as the formats of the streams themselves. If a user of one electronic device sends information to a user of another electronic device the formats need to be compatible for the communication to effectively take place. In many cases, the format that two electronic devices use are not compatible at all, thus an intermediary device must be used to translate the information traveling between the two devices. Devices called transcoders translate a multimedia stream in one format to a stream in another format so people can communicate with each other easily and still use these varied devices and varied multimedia stream formats. Transcoding currently is utilized in a variety of different scenarios such as for one-way, two-way, or multi-way streams.
One-way transcoding is used in circumstances where one device is sending a multimedia stream to a second device. Video messaging and video streaming are examples of one-way transcoding. FIG. 1A describes an example of a transaction that may require one-way transcoding of a multimedia stream. In this example, a video stream 100 is sent from a first computer 102 to a second computer 104. The video from the first computer 102 is encoded into one of many different possible formats including MPEG-2, MPEG-4, GSM (global system for mobile communications), or AMR (adaptive multi-rate) among others. The second computer 104 receives, decodes, and displays the streaming video on a video monitor.
Another example of one-way transcoding would be voicemail. A person may want to record a message on their voicemail system to inform callers that they are out of the office. That person may want to play back the message to determine whether they want to save it or record again. The person could be speaking through a G.711 format phone and the voicemail system may be recording the message in a WAV file. Again, this requires a transcoding step.
Two-way transcoding is used when two devices are sending streams to each other, such as potentially during a video call or an audio (e.g., telephone) call. FIG. 1B describes an example of a two-way video call that may require two-way transcoding of multimedia streams. In this example, a video stream 110 is sent from a first computer 112 to a second computer 114, and also from the second computer 114 to the first computer 110.
Multi-way transcoding is used when more than two devices are sending streams to each other, such as, for example, during a three-party video conference. FIG. 1C describes an example of a three-way video conference that may require multi-way transcoding. In this example, just like the example in FIG. 1B, multiple computers are sending and receiving video streams between each other. In this example, a first computer 122, a second computer 124, and a hand-held mobile computer/cell phone 126 are sending and receiving streams 120 between each other.
In many cases, each of the computers shown in FIGS. 1A, 1B and 1C may encode and decode multimedia streams in different formats. For example, the two computers in FIG. 1C (130 and 132) may encode and decode an MPEG-4 format stream, but the mobile computer/cellular phone 134 may not be capable of encoding or decoding MPEG-4 and instead encodes and decodes only a GSM-format stream. In this case, a transcoding device may be utilized to intercept the streams coming from each of the three devices and translate the streams into each destination device's native format.
A video stream is just one of many possible examples of where a transcoder may be needed. For example, if a person using a land-line phone calls his friend on a cellular phone there is a transcoding step necessary. The standard land-line phones typically operate using a G.711 format. The friend who answers the call would typically have a GSM, AMR, or other cellular phone voice format technology. Thus, in order for the two friends to hear each other a transcoding step would be necessary while they were talking.
The processing power required for many of these transcoding examples varies greatly. In some examples, real-time transcoding is required, in others it isn't. “Real-time” refers to the proximate speed required for a transcoder to transcode and output a multimedia stream at the same rate the untranscoded multimedia stream arrives at the transcoder. Thus, transcoding a voice stream in real-time would require transcoding the voice information at the rate the person is actually speaking the words. Therefore, the two friends who are talking to each other over a land-line and a cellular line must have the formats transcoded in real-time because they are speaking to each other in real-time and a delay in the audio may not be acceptable. The 3-way video conference would require even more processing power because not only are there three streams that need to be transcoded in real-time, but the streams consist of packets with voice and video components, which is a lot more information per packet than just pure voice component packet.
Currently, real-time transcoding systems usually utilize extremely powerful processors, such as servers with dedicated digital signal processors, to make sure that any form of information in the packet can be transcoded in real-time. In many occasions, this amount of processing power is not required. A person who is recording an out-of-office message and then reviews their recordings is not operating in real-time. There is a delay in the range of multiple seconds between when the person speaks into the phone, and when they hear their recorded voice during review.
There are also transcoding systems that perform transcoding in a non-real-time, offline manner. A user on a personal computer may translate a VHS tape into an AVI file to store on a DVD. Finally, there are implementations where no transcoding is done at all, for example, raw video, voice, or audio format streams can be transmitted across a network. This type of stream is not efficient because raw format streams are uncompressed and require a great deal of network bandwidth.